package br.com.pfc.mobile.comunicao;

import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.util.Log;
import br.com.pfc.mobile.transferobject.ProdutoTO;

public class ComunicacaoProduto extends Comunicacao{

	private static final String METHOD_LISTARPRODUTOS = "listarProdutos";
	private static final String SOAP_ACTION =  "http://webservice.siac/";
	
	public ProdutoTO[] listarProdutos(){
		/** TODO */
		getSoapObject(METHOD_LISTARPRODUTOS);
				
		SoapSerializationEnvelope envelope = getEnvelope();
		HttpTransportSE transport = new HttpTransportSE(URL);
		ProdutoTO[] produtosTO = null;
		try {
			//chamando o webservice
			transport.call(SOAP_ACTION + METHOD_LISTARPRODUTOS, envelope);
			//pegando o retorno
			SoapObject response = (SoapObject) envelope.bodyIn;
			if(response != null){
				produtosTO = new ProdutoTO[response.getPropertyCount()];				
				for (int i = 0; i < produtosTO.length; i++) {
					SoapObject responseProduto = (SoapObject)response.getProperty(i);
					ProdutoTO produtoTO = new ProdutoTO();
					produtoTO.setCodigo(Integer.parseInt(responseProduto.getProperty(ProdutoTO.PROP_CODIGO).toString()));
					produtoTO.setNome(responseProduto.getProperty(ProdutoTO.PROP_NOME).toString());
					produtoTO.setDataAlteracao(Long.parseLong(responseProduto.getProperty(ProdutoTO.PROP_DATAALTERACAO).toString()));
					produtoTO.setDescricao(responseProduto.getProperty(ProdutoTO.PROP_DESCRICAO).toString());
					produtoTO.setQuantidade(Integer.parseInt(responseProduto.getProperty(ProdutoTO.PROP_QUANTIDADE).toString()));
					produtoTO.setPeso(responseProduto.getProperty(ProdutoTO.PROP_PESO).toString());
					produtosTO[i] = produtoTO;
				}				
			}
			
		} catch (Exception e) {
			Log.i("PFC","erro no ws: " + e.getMessage());
		}
		return produtosTO;
	
	}
}
